I don't want to brag, but I think this is a breakthrough for radiosity:
The attached images show a purely radiosity-lit scene, using
pathologically small light emitters (three tiny spheres).
Image #1 shows the familiar splotchy output even at the maximum sample
ray count of 1600 and a nearest_count of 10, after a render time of 1
minute 45 seconds on my Core i7 machine.
Image #2 shows how this can be improved (not surprisingly) by using a
count of 6400 instead, after having replaced the built-in sample
sequence with a 160,000-element halton sequence, of which a subset of
6400 was picked for each sample in a round-robin fashion. Splotches are
almost gone, but there's a caveat: Render time increased to 7 minutes 20
seconds.
Image #3 however shows even better quality with a rendering time of just
2 minutes 18 seconds. On the same machine. With virtually identical
settings. So what's the deal here?
The basic idea is pretty simple: Trace fewer radiosity sample rays if
they only hit non-important objects :-)
Of course we can't know in advance whether we will hit important or
non-important objects; however, we /can/ decide to perform full
computations only on a subset of rays hitting non-important objects
(applying a factor to compensate for the discarded rays), so that at
least we need to perform fewer texture computations - not to mention
secondary rays for reflections or shadow computations.
For image #3, 12,800 rays were shot per sample, but I guess only roughly
2-5% of them (i.e. about 256 - 640) were continued beyond the ray-object
intersection tests.
Hey, I like this!
Post a reply to this message
Attachments:
Download 'rad_count_test_37a_1600__1m45s.png' (177 KB)
Download 'rad_count_test_38plus_6400of160000__7m20s.png' (177 KB)
Download 'rad_count_test_38plus_12800of160000_weighted__2m18s.png' (170 KB)
Preview of image 'rad_count_test_37a_1600__1m45s.png'
Preview of image 'rad_count_test_38plus_6400of160000__7m20s.png'
Preview of image 'rad_count_test_38plus_12800of160000_weighted__2m18s.png'
|